package cn.com.huzo.service.trade;

import cn.com.huzo.model.entities.trade.InspectionJournalLinesNoOfStyleEntity;
import huzofw.service.GenericManager;
import java.util.List;
import java.util.Map;
import org.springframework.transaction.annotation.Transactional;

/**
 * 化检日记账-款号明细管理服务接口。
 *
 * @author 范学春
 */
public interface InspectionJournalLinesNoOfStyleManager extends GenericManager<InspectionJournalLinesNoOfStyleEntity, String> {

    /**
     * 根据给定ID取得化检日记账款号明细信息对象。
     *
     * @param headerKey 主键
     * @return 化检日记账款号信息对象
     * @throws java.lang.Exception
     */
    @Transactional
    Map<String, Object> fetchByHeaderKey(Long headerKey) throws Exception;

    /**
     * 增加款号明细。
     *
     * @param matchValue 主表标识、引入的产品标识
     * @return 化检日记账款号的明细
     * @throws java.lang.Exception
     */
    @Transactional
    List<InspectionJournalLinesNoOfStyleEntity> insert(Map<String, Object> matchValue) throws Exception;

    /**
     * 更新明细。
     *
     * @param dataList 要更新数据
     * @return 化检日记账的款号明细
     * @throws java.lang.Exception
     */
    @Transactional
    Integer update(List<InspectionJournalLinesNoOfStyleEntity> dataList) throws Exception;

    /**
     * 删除明细。
     *
     * @param instance 要删除的数据
     * @return 化检日记账的款号明细和资材明细
     * @throws java.lang.Exception
     */
    @Transactional
    Map<String, Object> deleteLines(InspectionJournalLinesNoOfStyleEntity instance) throws Exception;

    /**
     * 批量删除明细。
     *
     * @param dataList 要删除的数据
     * @return 化检日记账的款号明细
     * @throws java.lang.Exception
     */
    @Transactional
    List<InspectionJournalLinesNoOfStyleEntity> batchDeleteLines(List<InspectionJournalLinesNoOfStyleEntity> dataList) throws Exception;
}
